home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 April / EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso / EARCD / comm / misc / zpoint_3_14.lha / zpoint-3.14 / Rexx / ReadMessageInfo.zprx < prev    next >
Text File  |  1995-11-26  |  6KB  |  225 lines

  1. /*
  2.     $VER: ReadMessageInfo.zprx 1.6 (24.11.95) Copyright (c) Nils Görs
  3.     Idee von Andreas Leicht
  4.  
  5.  
  6.    Funktionsbeschreibung:
  7.  
  8.     Dies  ist  ein ARexx-Skript für Zodiac's Point, daß beim lesen von
  9.     markierten   Nachrichten,   etwas   mehr   Informationen   bietet.
  10.     Desweiteren   bietet  es  die  Möglichkeit,  Nachrichten  auch  in
  11.     thematischer Reihenfolge zu lesen.
  12.  
  13.  
  14.  
  15.     Hinweise zur Installation:
  16.  
  17.     Kopieren sie dieses Skript in  das  Rexx-Verzeichnis  von  ZP  und
  18.     fügen  sie  danach  der  Datei  'fkeys.zp'  auf Wunsch den Eintrag
  19.     "F1:SYS:Rexxc/RX ZPOINT:Rexx/ReadMessageInfo.zprx %s" hinzu.
  20.  
  21.  
  22.     Sie erreichen den Autor wie folgt:
  23.  
  24.        Nils Görs              Tel. : +49 (0)202 784258
  25.        Kaiserstr. 97a         EMail: N.Goers@Art-Line.Art-Line.de
  26.        42329 Wuppertal          oder über das ZP-Support-Brett.
  27.  
  28.    Verwenden Sie bitte nach Möglichkeit elektronische Post!
  29. */
  30.  
  31. /* Sollen die Nachrichten thematisch gelesen werden ??
  32.    0 = Nein
  33.    1 = Ja
  34.    2 = Requester ! */
  35. ReadThema = 2
  36.  
  37. /* Soll die gelesene Nachricht als gelöscht markiert werden ???
  38.    0 = Nein
  39.    1 = Ja
  40.    2 = Requester   */
  41. KillMail  = 2
  42.  
  43. /* Sonderzeichen werden nach ? gewandelt */
  44. OldChar = '"()*^ '
  45. NewChar = "??????"
  46. /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  47.  *      Bitte geben Sie hier ihre Präferenzen ein !                *
  48.  *******************************************************************/
  49.  
  50. /*******************************************************************
  51.  *      Bitte unterhalb dieser Zeile nichts mehr verändern!        *
  52.  *******************************************************************/
  53. NL = '0a'x
  54. OPTIONS RESULTS
  55.  
  56. NL = '0a'x
  57. text  = "wurde wurden"
  58. text2 = "Nachricht Nachrichten"
  59. text3 = "verbleibt verbleiben"
  60.  
  61. /* ------ von welchem ZP Port wurde das Script aufgerufen ? ------ */
  62. PARSE ARG zpPort
  63. IF zpPort == "" THEN
  64.    zpPort = "ZPoint"
  65. ADDRESS VALUE zpPort
  66.  
  67. /* ------------- Dieses Skript läuft erst ab V37.194 ------------- */
  68. WHICHVERSION
  69. IF RESULT < "37.194" THEN DO
  70.  REQUESTNOTIFY "Dieses Skript benötigt mind. Zodiac's Point 37.194 (28.6.95)"
  71.  EXIT
  72. END
  73.  
  74. WHICHLEVEL
  75. IF RESULT ~= "BOARD" THEN DO
  76.    REQUESTNOTIFY "Bitte begeben Sie sich in ein Brett!"
  77.    EXIT
  78. END
  79.  
  80. MESSAGEINFO POSITION /* Wo steht der Markierungsbalken? */
  81. MailPos = Result
  82.  
  83.  
  84. COUNT LISTED
  85. HowManyMess = RESULT
  86.  
  87. IF HowManyMess == 0 THEN DO
  88.  REQUESTNOTIFY "Es wurden keine markierten"NL,
  89.                "Nachrichten gefunden!"; EXIT
  90. END
  91. HowManyLeft = HowManyMess
  92.  
  93. IF ReadThema == 2 THEN DO
  94.    REQUESTRESPONSE "Sollen die Nachrichten"NL,
  95.                    "thematisch gelesen werden?"
  96.    ReadThema = (RC)
  97. END
  98.  
  99. MessRead = 0
  100.    IF ReadThema == 1 THEN CALL _ThematischesLesen
  101.  
  102. JUMPTOMESSAGE 1                /* An die erste Nachricht springen! */
  103.  MESSAGEINFO LISTED            /* ist diese erste Nachricht markiert? */
  104.  IF Result == 1 THEN CALL _ReadMessage
  105.  
  106. GUILOCK ON
  107.  
  108. /* Nachrichten werden hier gelsesen und die Informationen ausgegeben */
  109. more = 1
  110.  
  111. DO WHILE more
  112.   JUMPTOMESSAGE LISTED
  113.   more = (RC)
  114.  IF more == 1 THEN CALL _ReadMessage
  115. END
  116.  
  117. _ReadMessage:
  118.  CALL _Inform
  119. RETURN
  120.  
  121. /* hier werden die Nachrichten nach Thema gelesen ! */
  122.  
  123. _ThematischesLesen:
  124. JUMPTOMESSAGE 1                /* An die erste Nachricht springen! */
  125.  CALL _GetSubject
  126.  MESSAGEINFO LISTED            /* ist diese erste Nachricht markiert? */
  127.  IF RESULT == 1 THEN CALL _ReadMessage2
  128.  
  129.  JUMPTOMESSAGE LISTED
  130.  IF (RC) == 1 THEN DO
  131.    CALL _GetSubject
  132.    CALL _ReadMessage2
  133.  END
  134.     CALL _thematischesLesen
  135.  
  136. _ReadMessage2:
  137. more = 1
  138. DO WHILE more
  139.  MESSAGEINFO LISTED
  140.          IF RESULT = 1 THEN DO
  141.             CALL _Inform
  142.             SELECTMESSAGE
  143.          END
  144.   DOWN                    /* eine Nachricht nach unten */
  145.   IF (RC) == 0 THEN DO
  146.     IF Messread == HowManyMess THEN CALL Quit /* sind alle Nachrichten gelesen? */
  147.     CALL _thematischesLesen
  148.   END
  149.  
  150.   CALL _ReadThread            /* gibt es einen Thread ?? */
  151.  JUMPTOMESSAGE SUBJECT Betreff        /* zum nächsten Betreffmuster springen */
  152.  more = (RC)
  153. END
  154. RETURN
  155.  
  156. _ReadThread:
  157.   MESSAGEINFO DEPTH
  158.    IF RESULT >0 THEN DO
  159.     d = 1
  160.     DO WHILE d > 0
  161.         MESSAGEINFO LISTED        /* ist die Nachricht markiert ?? */
  162.          IF RESULT = 1 THEN DO
  163.             CALL _Inform
  164.             SELECTMESSAGE
  165.          END
  166.         DOWN                /* noch eine Nachricht nach unten! */
  167.         IF (RC) = 1 THEN DO
  168.             MESSAGEINFO DEPTH
  169.             d = RESULT
  170.         END
  171.         ELSE
  172.             d = 0
  173.     END
  174.    END
  175. RETURN
  176.  
  177. _GetSubject:
  178.  MESSAGEINFO SUBJECT               /* wie lautet der Betreff der ersten */
  179.  Betreff=TRANSLATE(RESULT,NewChar,OldChar) /* markierten Nachricht? */
  180.  Betreff = '"#?'Betreff'#?"'
  181. RETURN
  182.  
  183.  
  184. /* hier sind globale Routinen */
  185. _Inform:
  186.   READMESSAGE
  187.   MARKASOLD ONE
  188.   SELECT
  189.     WHEN KillMail = 1 THEN DELETE ONE
  190.     WHEN KillMail = 2 THEN DO
  191.      REQUESTRESPONSE "Soll die Nachricht"NL,
  192.                      "gelöscht werden?"
  193.      IF (RC) == 1 THEN DELETE ONE
  194.     END
  195.  
  196.    OTHERWISE
  197.     NOP
  198.   END
  199.  
  200.   HowManyLeft = HowManyLeft-1
  201.   Messread = Messread + 1
  202.      K=1
  203.      IF Messread > 1 THEN k=2
  204.      textpointer1 = WORD(Text,k); textpointer2 = WORD(Text2,k)
  205.      K2=1
  206.      IF HowManyLeft > 1 THEN k2=2
  207.      textpointer3 = WORD(Text3,k2); textpointer4 = WORD(Text2,k2)
  208.   IF Messread == HowManyMess THEN CALL Quit /* sind alle Nachrichten gelesen? */
  209.  
  210.  REQUESTRESPONSE "Es" textpointer1 "bisher" Messread textpointer2 "gelesen!"NL,
  211.                  "Es" textpointer3 "noch" HowManyLeft textpointer4"."NL,
  212.                  "Weitere" textpointer4 "lesen?"
  213.     IF (RC) == 0 THEN CALL Quit
  214. GUILOCK ON
  215. RETURN
  216.  
  217. Quit:
  218. SELECTMESSAGE NONE            /* Markierung der letzten Nachricht entfernen */
  219. JUMPTOMESSAGE MailPos         /* und auf die Nachricht springen, die wo der Balken stand */
  220. TextPointer2 = WORD(Text2,2)
  221. IF HowManyMess < 2 THEN Textpointer2 = WORD(text2,1)
  222. REQUESTNOTIFY "Es" textpointer1 "insgesamt" Messread "von" HowManyMess textpointer2 "gelesen!"
  223. EXIT
  224. /* EOS */
  225.